package com.zhentao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhentao.pojo.CustomsDataLog;

import java.util.List;
import java.util.Map;

/**
* @author 李佳隆
* @description 针对表【customs_data_log(海关数据采集模块统一日志表：覆盖全流程操作、数据、异常、应用行为)】的数据库操作Service
* @createDate 2025-08-27 09:50:25
*/
public interface CustomsDataLogService extends IService<CustomsDataLog> {

    /**
     * 分页查询日志列表
     * @param page 页码
     * @param size 每页大小
     * @param queryParams 查询参数
     * @return 日志列表
     */
    List<CustomsDataLog> getPageList(Integer page, Integer size, Map<String, Object> queryParams);

    /**
     * 按业务模块统计数量
     * @param bizModule 业务模块
     * @return 统计数量
     */
    Long countByModule(Integer bizModule);

    /**
     * 按操作类型统计数量
     * @param bizType 操作类型
     * @return 统计数量
     */
    Long countByType(Integer bizType);

    /**
     * 获取操作人员统计
     * @return 操作人员统计列表
     */
    List<Map<String, Object>> getOperatorStatistics();

    /**
     * 获取日志趋势数据
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param granularity 时间粒度
     * @return 趋势数据
     */
    List<Map<String, Object>> getLogTrend(String startTime, String endTime, String granularity);

    /**
     * 根据条件查询所有日志
     * @param queryParams 查询参数
     * @return 日志列表
     */
    List<CustomsDataLog> getAllByParams(Map<String, Object> queryParams);

    /**
     * 清理指定日期之前的日志
     * @param beforeDate 日期
     * @return 清理数量
     */
    int cleanupBefore(String beforeDate);

}
